package org.example.dic.core.service;

import org.example.dic.core.entity.DicType;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.dic.core.form.QueryDicTypeListForm;
import org.example.dic.core.form.UpdateDicTypeForm;

import java.util.List;

/**
 * <p>
 * 数据字典类型表  服务类
 * </p>
 *
 * @author Joey
 * @since 2021-05-13
 */
public interface IDicTypeService extends IService<DicType> {

    /**
     * 查询字典类型列表
     * @param form
     * @return
     */
    List<DicType> queryDicTypeList(QueryDicTypeListForm form);

    /**
     * 类型key是否存在
     * @param typeKey
     * @return
     */
    boolean existByTypeKey(String typeKey,Long dicTypeId);

    /**
     * 删除字典类型-同时删除对应的字典信息
     * @param dicTypeId
     */
    void deleteByDicTypeId(Long dicTypeId);

    /**
     * 修改字典类型信息
     * 1、当typeKey变更时，同步对应的更新字典信息数据
     * @param form
     */
    void updateByForm(UpdateDicTypeForm form);

    /**
     * 查询父级路径
     * @param parentId
     * @return
     */
    String queryIdPath(Long parentId);
}
